+Mon Jan 25 19:41:56 1999 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
+ a redraw on the tab area when a tab changes size.
+ (Includes improvements from Lars Hamann)
+
Mon Jan 25 19:00:13 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
try a different one that is less dependent on
the state of the widget. Just redraw the value_marker
when it gets mapped. Somebody needs to analyze
- this widget more carefully and figure out
+ this widget more carefully and figure out when
+ it should be setting the contents of the previews
+ with more care.
Mon Jan 25 17:48:03 1999 Owen Taylor <otaylor@redhat.com>
+Mon Jan 25 19:41:56 1999 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
+ a redraw on the tab area when a tab changes size.
+ (Includes improvements from Lars Hamann)
+
Mon Jan 25 19:00:13 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
try a different one that is less dependent on
the state of the widget. Just redraw the value_marker
when it gets mapped. Somebody needs to analyze
- this widget more carefully and figure out
+ this widget more carefully and figure out when
+ it should be setting the contents of the previews
+ with more care.
Mon Jan 25 17:48:03 1999 Owen Taylor <otaylor@redhat.com>
+Mon Jan 25 19:41:56 1999 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
+ a redraw on the tab area when a tab changes size.
+ (Includes improvements from Lars Hamann)
+
Mon Jan 25 19:00:13 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
try a different one that is less dependent on
the state of the widget. Just redraw the value_marker
when it gets mapped. Somebody needs to analyze
- this widget more carefully and figure out
+ this widget more carefully and figure out when
+ it should be setting the contents of the previews
+ with more care.
Mon Jan 25 17:48:03 1999 Owen Taylor <otaylor@redhat.com>
+Mon Jan 25 19:41:56 1999 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
+ a redraw on the tab area when a tab changes size.
+ (Includes improvements from Lars Hamann)
+
Mon Jan 25 19:00:13 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
try a different one that is less dependent on
the state of the widget. Just redraw the value_marker
when it gets mapped. Somebody needs to analyze
- this widget more carefully and figure out
+ this widget more carefully and figure out when
+ it should be setting the contents of the previews
+ with more care.
Mon Jan 25 17:48:03 1999 Owen Taylor <otaylor@redhat.com>
+Mon Jan 25 19:41:56 1999 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
+ a redraw on the tab area when a tab changes size.
+ (Includes improvements from Lars Hamann)
+
Mon Jan 25 19:00:13 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
try a different one that is less dependent on
the state of the widget. Just redraw the value_marker
when it gets mapped. Somebody needs to analyze
- this widget more carefully and figure out
+ this widget more carefully and figure out when
+ it should be setting the contents of the previews
+ with more care.
Mon Jan 25 17:48:03 1999 Owen Taylor <otaylor@redhat.com>
+Mon Jan 25 19:41:56 1999 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
+ a redraw on the tab area when a tab changes size.
+ (Includes improvements from Lars Hamann)
+
Mon Jan 25 19:00:13 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
try a different one that is less dependent on
the state of the widget. Just redraw the value_marker
when it gets mapped. Somebody needs to analyze
- this widget more carefully and figure out
+ this widget more carefully and figure out when
+ it should be setting the contents of the previews
+ with more care.
Mon Jan 25 17:48:03 1999 Owen Taylor <otaylor@redhat.com>
+Mon Jan 25 19:41:56 1999 Owen Taylor <otaylor@redhat.com>
+
+ * gtk/gtknotebook.c (gtk_notebook_page_allocate): Queue
+ a redraw on the tab area when a tab changes size.
+ (Includes improvements from Lars Hamann)
+
Mon Jan 25 19:00:13 1999 Owen Taylor <otaylor@redhat.com>
* gtk/gtkcolorsel.c (gtk_color_selection_value_events):
try a different one that is less dependent on
the state of the widget. Just redraw the value_marker
when it gets mapped. Somebody needs to analyze
- this widget more carefully and figure out
+ this widget more carefully and figure out when
+ it should be setting the contents of the previews
+ with more care.
Mon Jan 25 17:48:03 1999 Owen Taylor <otaylor@redhat.com>
GtkNotebookPage *page,
GtkAllocation *allocation)
{
+ GtkWidget *widget;
GtkAllocation child_allocation;
gint xthickness;
gint ythickness;
g_return_if_fail (page != NULL);
g_return_if_fail (allocation != NULL);
- page->allocation = *allocation;
+ widget = GTK_WIDGET (notebook);
+
+ xthickness = widget->style->klass->xthickness;
+ ythickness = widget->style->klass->ythickness;
+
+ /* If the size of the notebook tabs change, we need to queue
+ * a redraw on the tab area
+ */
+ if ((allocation->width != page->allocation.width) ||
+ (allocation->height != page->allocation.height))
+ {
+ gint x, y, width, height, border_width;
+
+ border_width = GTK_CONTAINER (notebook)->border_width;
+
+ switch (notebook->tab_pos)
+ {
+ case GTK_POS_TOP:
+ width = widget->allocation.width;
+ height = MAX (page->allocation.height, allocation->height) +
+ ythickness;
+ x = 0;
+ y = border_width;
+ break;
+
+ case GTK_POS_BOTTOM:
+ width = widget->allocation.width + xthickness;
+ height = MAX (page->allocation.height, allocation->height) +
+ ythickness;
+ x = 0;
+ y = widget->allocation.height - height - border_width;
+ break;
+
+ case GTK_POS_LEFT:
+ width = MAX (page->allocation.width, allocation->width) + xthickness;
+ height = widget->allocation.height;
+ x = border_width;
+ y = 0;
+ break;
+
+ case GTK_POS_RIGHT:
+ default: /* quiet gcc */
+ width = MAX (page->allocation.width, allocation->width) + xthickness;
+ height = widget->allocation.height;
+ x = widget->allocation.width - width - border_width;
+ y = 0;
+ break;
+ }
+
+ gtk_widget_queue_clear_area (widget, x, y, width, height);
+ }
- xthickness = GTK_WIDGET (notebook)->style->klass->xthickness;
- ythickness = GTK_WIDGET (notebook)->style->klass->ythickness;
+ page->allocation = *allocation;
if (notebook->cur_page != page)
{